package structuresManagers;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import register.Register;
import register.RegisterID;
import FilesManagers.CantOpenFileException;
import Filters.FullFilter;
import bplustree.BadChecksumException;

public class BruteForceManager extends AbstractManager {

	private Register registro;
	private boolean encontrado;

	public BruteForceManager(String urls, String urlsProcesadas,
			FullFilter filtro) throws CantOpenFileException {
		super(urls, urlsProcesadas, filtro);
		registro = new Register();
		encontrado=false;
		// TODO Apéndice de constructor generado automáticamente
	}
	
	
	

	@Override
	protected void buildStructure(String archivo, Integer structureSize)
			throws IOException, CantOpenFileException {
		// TODO Apéndice de método generado automáticamente

	}

	@Override
	protected void inMakeStructure(Register registro) throws IOException,
			BadChecksumException {
		//System.out.println("Busco "+this.registro.getID().getID());
		//System.out.println("Vino "+registro.getID().getID());
		if(registro.getID().getID().equals(this.registro.getID().getID()) && !encontrado ){
			
			this.registro.addAtribute(registro.getFirstAtribute());
			encontrado=true;
			
		}
		// TODO Apéndice de método generado automáticamente
		

	}

	@Override
	protected void inMakeStructureUrlFinished() throws IOException {
		// TODO Apéndice de método generado automáticamente
		encontrado=false;
	}

	@Override
	protected Register inSearch(String objetivo) throws IOException,
			BadChecksumException {
		// TODO Apéndice de método generado automáticamente
		return this.registro;
	}




	public String[] search(String objetivo) {
		// TODO Apéndice de método generado automáticamente
		try {
			registro.setID(new RegisterID(objetivo));			
			super.makeStructure("",0);
			return super.search("", "");
			
		} catch (CantOpenFileException e) {
			// TODO Bloque catch generado automáticamente
			e.printStackTrace();
		}
		
		return null;
	}

}
